package com.zlzlib.libnetty.listener;

import io.netty.handler.codec.http.FullHttpResponse;

/**
 * webSocket的消息监听
 */
public interface WebSocketListener {
    /**
     * 握手连接成功
     *
     * @param response 返回消息
     */
    void onOpen(FullHttpResponse response);

    /**
     * 返回消息
     *
     * @param text 文字类型
     */
    void onMessage(String text);

    /**
     * 返回消息
     *
     * @param bytes 二进制码类型
     */
    void onMessage(byte[] bytes);

    /**
     * 连接关闭
     *
     * @param code   状态码
     * @param reason 断开原因
     */
    void onClosed(int code, String reason);

    /**
     * 连接异常
     *
     * @param t        异常
     * @param response 异常内容
     */
    void onFailure(Throwable t, FullHttpResponse response);

    /**
     * 心跳返回
     */
    void onHeartPong();
}
